#pragma once
#include <climits>
#include <algorithm>
#include <numeric>
#include <utility>
#include <queue>
#include <functional>
#include "virtualio.h"
using namespace std;
#define print(...) print_any(__VA_ARGS__);

template<class F, class T>
void vv_conv(const vector<vector<F>> & from, vector<vector<T>> & to,
    std::function<T(const F&)> conv = [](const F & f)->T{ return T(f); }
){
    for(size_t i=0; i<std::size(from); i++)
        for(size_t j=0; j<std::size(from[i]); j++)
            to[i][j] = conv(from[i][j]);
} 